package 简单算法;

/**
 * @Author: 胡成
 * @Version: 0.0.1V
 * @Date: 2019-05-24
 * @Description: 给你一个排序数组，删除其中的重复元素，使得每个数字最多出现两次，返回新的数组的长度。
 * 如果一个数字出现超过2次，则这个数字最后保留两个。
 * 样例
 * 样例 1:
 * 输入: []
 * 输出: 0
 * 样例 2:
 * 输入:  [1,1,1,2,2,3]
 * 输出: 5
 * 样例解释:
 * 长度为 5，  数组为：[1,1,2,2,3]
 * 注意事项
 * 需要在原数组中操作
 **/
public class 删除排序数组中的重复数字II {
    public static void main(String[] args) {
        删除排序数组中的重复数字II s = new 删除排序数组中的重复数字II();
        System.out.println(s.removeDuplicates(new int[]{1, 1, 1, 2, 2, 3}));
    }

    public int removeDuplicates(int[] nums) {
        // write your code here
        int index = 0, count = 1;
        for (int i = 1; i < nums.length; i++) {
            if (nums[i] == nums[index]) {
                if (count < 2) {
                    nums[++index] = nums[i];
                    count++;
                }
            } else {
                nums[++index] = nums[i];
                count = 1;
            }
        }
        return index + 1;
    }
}
